package com.moss.cloud.base.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moss.cloud.base.api.model.from.BaseFrom;
import com.moss.cloud.base.api.model.from.GatewayRoutesFrom;
import com.moss.cloud.base.api.model.param.GatewayRouteQueryParam;
import com.moss.cloud.base.biz.model.GatewayRoutes;

import java.util.List;

/**
 * 网关路由服务层接口
 *
 * @author 瑾年
 * @date 2023年3月7日
 */
public interface IGatewayRoutesService extends IService<GatewayRoutes> {
    /**
     * 获取网关路由
     *
     * @param id 住建
     * @Author: 瑾年
     * @Date: 2020-4-23
     */
    GatewayRoutes get(long id);

    /**
     * 新增网关路由
     *
     * @param gatewayRoutesFrom 网关路由对象
     * @Author: 瑾年
     * @Date: 2020-4-23
     */
    Long add(GatewayRoutesFrom gatewayRoutesFrom);

    /**
     * 根据uri获取网关路由
     *
     * @param gatewayRouteQueryParam 搜索参数
     * @Author: 瑾年
     * @Date: 2020-4-23
     */
    List<GatewayRoutes> query(GatewayRouteQueryParam gatewayRouteQueryParam);

    /**
     * 分页查询网关配置数据
     *
     * @param gatewayRouteQueryParam
     * @return
     */
    IPage<GatewayRoutes> routesPages(GatewayRouteQueryParam gatewayRouteQueryParam);

    /**
     * 修改网关路由
     *
     * @param gatewayRoutesFrom 网关路由对象
     * @Author: 瑾年
     * @Date: 2020-4-23
     */
    Long update(GatewayRoutesFrom gatewayRoutesFrom);

    /**
     * 删除网关路由
     *
     * @param baseFrom
     * @Author: 瑾年
     * @Date: 2020-4-23
     */
    Long delete(BaseFrom baseFrom);

    /**
     * 搜索网关路由
     *
     * @Author: 瑾年
     * @Date: 2020-4-23
     */
    boolean overload();
}
